import os
import hashlib

# --- 应用基础配置 ---
# 获取当前文件所在的目录
BASE_DIR = os.path.abspath(os.path.dirname(__file__))


# --- 应用基础配置 ---
SECRET_KEY = os.environ.get(
    "FLASK_SECRET_KEY", "your_very_secret_key_here_please_change_this_in_production"
)  # 从环境变量读取，或使用默认值

# --- 用户认证 ---
LOGIN_ENABLED = True  # 设置为 False 可禁用登录功能

# 更多用户可以按此格式添加
USERS = {
    "admin": hashlib.md5("jlb@2025".encode()).hexdigest(),  # 密码是 "jlb@2025"
    "user1": hashlib.md5("jlb@2025".encode()).hexdigest(),
}


# --- 文件路径配置 ---
UPLOAD_FOLDER = os.path.join(BASE_DIR, "uploads")
BOTTLE_MODEL_PATH = os.path.join(
    BASE_DIR, "models/shelf/shelf.pt"
)  # 使用shelf.pt作为瓶子检测模型
SKU_MODEL_PATH = os.path.join(
    BASE_DIR, "models/shelf/shelf.pt"
)  # 使用shelf.pt作为SKU检测模型

# --- 可配置的检测阈值 ---
BOTTLE_CONFIDENCE_THRESHOLD = 0.5  # 瓶子检测置信度
BOTTLE_IOU_THRESHOLD = 0.3  # 瓶子检测IOU阈值
SKU_CONFIDENCE_THRESHOLD = 0.5  # 健力宝SKU检测置信度
SKU_IOU_THRESHOLD = 0.3  # 健力宝SKU检测IOU阈值

# --- 图像清晰度阈值 ---
CLARITY_THRESHOLD = 100

# --- 分层算法参数 ---
SLOPE_TOLERANCE = 0.8  # 分层斜率容忍度，值越大越能容忍倾斜


# --- 安全配置 ---
# API Keys字典，键是API Key（UUID），值是对应的系统名称
API_KEYS = {
    "1258760c-9efe-4b70-999d-7292271b9c17": "SystemA",
    "dd39fd94-ae2b-4a89-9c08-a4d94fc69138": "SystemB",
    "386f9630-cb1b-41d2-ade3-1eaf85e50b82": "DefaultSystem",
}


# --- 定时任务配置 ---
SCHEDULER_API_ENABLED = True
CLEANUP_INTERVAL_DAYS = 15  # 清理多少天前的文件
CLEANUP_HOUR = 0  # 每天清理任务执行的小时时间（24小时制）

# --- 日志配置 ---
LOG_FILE = "logs/app.log"  # 日志文件名
LOG_BACKUP_COUNT = 7  # 保留的旧日志文件数量（例如，保留7天的日志）
LOG_LEVEL = "INFO"  # 日志级别 (DEBUG, INFO, WARNING, ERROR, CRITICAL)

# --- 批量任务配置 ---
BATCH_RESULTS_FOLDER = os.path.join(BASE_DIR, "batch_results")
